This invention relates to a virtual computer system, and more particularly, to a virtual computer system using a processor provided with a virtualization support feature.
Recently, as open servers have become popular, a large number of servers have been introduced to information systems used in enterprises. Especially, indiscriminate introduction of Intel Architecture (IA)-32 servers, which have high cost performance, has increased the operation/management cost of servers including the cost of power consumption and the cost of hardware maintenance, and is posing a problem for the enterprises which are operating the servers.
A server integration which, in order to reduce the operation/management cost of servers, unifies a plurality of servers into one physical server is promising. As a method for realizing the server integration, a virtualization software program which provides a feature of virtualizing computer resources is attracting attention. The virtualization software program is a control software program, which divides computer resources such as the CPU (processor) and I/O's of a single physical server, and assigns the divided computer resources to a plurality of virtual servers. On the respective virtual servers, one OS (guest OS) can operate. By employing the virtualization software program, it is possible to realize the server integration which assigns OS's and application programs, which conventionally run on a plurality of physical servers, to respective virtual servers, thereby providing a plurality of servers on a single computer.
A description will now be given of a policy of the virtualization software program for assigning computer resources to virtual servers. For the assignment of the CPU as the computer resource, virtualization software programs for the IA-32 mainly employ a processor provided with the virtualization support feature such as Virtualization Technology for Xenon (VT-x) (or AMD-V). The VT-x is a feature which assigns different operation privileges to a virtualization software program and a guest OS, and is implemented as hardware of a processor, as shown in JP 2005-529401 A, Intel Corp., “Intel 64 and IA-32 Architectures Software Developer's Manual VOL 2B”, http://www.intel.com/design/processor/manuals/253667.pdf, retrieved on May 1, 2007, and Advanced Micro Devices, Inc., “AMD-Virtualization (AMD-V)”, http://www.amd.com/us-en/assets/content type/white papers and tech docs/245 93.pdf, retrieved on May 1, 2007, for example. A CPU compliant with the VT-x feature detects the operation privilege passed between the guest OS's and the virtualization software program, and backs up and restores a register status of the CPU, thereby providing independent operation environments for respective virtual servers. It should be noted that Intel, Itanium, Xenon, and AMD are registered trademarks.
On the other hand, a policy of the assignment of I/O's depends on virtualization software programs. The assignments of the I/O's by the virtualization software programs are generally classified into:
1. Direct I/O assignment type which permits direct use of I/O devices of a physical server; and
2. Virtual I/O assignment type which hides types and revisions of I/O devices of a physical server.
The “1. Direct I/O assignment type” has an advantage that, for presently operating I/O's of a physical server, a server integration can be easily realized without rebuilding a file system or the like. On the other hand, the “2. Virtual I/O assignment type” has an advantage that a certain I/O configuration can be provided for guest OS's independently of I/O types of a physical server.
The following are known examples of the virtualization software programs described above. First, as a virtualization software program for an IA-32 server, ESX Server of VMware (registered trademark) is known. The ESX Server can cause a plurality of conventional OS's to operate on a physical server employing an IA-32 CPU providing the above-mentioned VT-x feature.
As a virtualization software program based on a mainframe computer technology, a logical partition operation feature (in IBM System 370, for example) is known. This feature partitions a single physical computer into a plurality of logical partitions (LPAR's), and causes a conventional OS and a virtual machine manager (VMM) to operate on the respective LPAR's. According to the logical partition operation feature, the mainframe (physical computer) uses a feature (LPAR mode) corresponding to the above-mentioned VT-x of IA-32 to cause the conventional OS and the VMM to run on the virtual server (LPAR).
Moreover, SimOS (http://simos.stanford.edu/introduction.html) is known as a virtualization software program which provides the VT-x feature of the IA-32 by means of a simulator. A simulator of this type is a software program which provides functions of an arbitrary server and CPU by interpreting an instruction sequence of a guest OS on a virtual server.
Moreover, as a virtualization support feature implemented on an IA-64 processor (IPF: Itanium Processor Family), the VT-i feature described in parts §3.3.2 (“Processor Status Register”), §3.4 (“Processor Virtualization”), §11.7 (“PAL Virtualization Support”), and §11.11 (“PAL Virtualization Services”) of Intel Corp., “Intel Itanium Architecture Software Developer's Manual”, vol. 2, is known.